package fr.syntheses.blog.controller.interceptor;

import java.util.Map;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

import fr.syntheses.blog.beans.Utilisateur;


@SuppressWarnings("serial")
public class AuthentificationIntercepteur extends AbstractInterceptor {
	
	
	// m�thode ex�cut�e avant l'action
	public void init()
	{
		System.out.println("Avant la m�thode d'action");	
	}
	
	
	
	// m�thode de l'intercepteur
	public String intercept(ActionInvocation invocation) throws Exception
	{
		System.out.println("Dans la m�thode intercept");
		
		// r�cup�rer les objets de la session
		Map<String,Object> session=invocation.getInvocationContext().getSession();
	
		if(session.get("currentUser") == null)
		{
			// l'utilisateur n'est pas authentifi� retourner sur la page d'authentification
			return "authentificationA";
		}
		else
		{
			
			Utilisateur u = (Utilisateur)session.get("currentUser");
			
			System.out.println("The role  ! " + u.getRole());
			
			if (u.getRole() != 1) {
				return "authentificationA";
				
			}
			else
			{
				// l'utilisateur est authentifi�, continuer l'action
				return invocation.invoke();
			}
		}
	}
	
	
	// m�thode ex�cut�e apr�s l'action
	public void destroy()
	{
		System.out.println("Apr�s la m�thode d'action");
	}
}
